package com.cloudtec.yunzonedep.common.util;

import org.apache.shiro.crypto.hash.Md5Hash;

import javax.crypto.Cipher;
import javax.crypto.spec.PBEParameterSpec;
import java.security.Key;
import java.security.SecureRandom;
import java.util.Random;

public class PasswordUtil {

    /**
     * 定义加密次数
     */
    public static final Integer TIMES = 64;

    /**
     * 获取加密算法中使用的盐值,解密中使用的盐值必须与加密中使用的相同才能完成操作. 盐长度必须为8字节
     *
     * @return byte[] 盐值
     * */
    public static String getSalt(int len) throws Exception {
        String base = "qwertyuioplkjhgfdsazxcvbnmQAZWSXEDCRFVTGBYHNUJMIKLOP0123456789";
        StringBuffer sb = new StringBuffer();
        Random rd = new Random();
        for(int i=0;i<len;i++) {
            sb.append(base.charAt(rd.nextInt(base.length())));
        }
        return sb.toString();
    }

    /**
     * 加密明文字符串 MD5加密
     */
    public static String encrypt(String password,  String salt) {
        return new Md5Hash(password,salt,TIMES).toString();
    }

}
